home *** CD-ROM | disk | FTP | other *** search
- INCLUDE MACROS.ASM
- BEGINCOM SETPR
- JMP START
-
- ; PICA, 6 LPI, 11" (STANDARD DEFAULT)
- PICA6LPI DB 27,'!',0 ;SET PICA TYPE
- DB 27,'2' ;SET 6 LPI
- DB 27,'C',0,11 ;SET 11 INCH FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=PICA, LPI=6, FORM LENGTH = 11 IN',13,10,'$'
- ; PICA, 8 LPI, 11"
- PICA8LPI DB 27,'!',0 ;SET PICA TYPE
- DB 27,'0' ;SET 8 LPI
- DB 27,'C',0,11 ;SET 11 INCH FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=PICA, LPI=8, FORM LENGTH = 11 IN',13,10,'$'
- ; ELITE, 6 LPI, 11"
- ELIT6LPI DB 27,'!',1 ;SET ELITE TYPE
- DB 27,'2' ;SET 6 LPI
- DB 27,'C',0,11 ;SET 11 INCH FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=ELITE, LPI=6, FORM LENGTH = 11 IN',13,10,'$'
- ; ELITE, 8 LPI, 11"
- ELIT8LPI DB 27,'!',1 ;SET ELITE TYPE
- DB 27,'0' ;SET 8 LPI
- DB 27,'C',0,11 ;SET 11 INCH FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=ELITE, LPI=8, FORM LENGTH = 11 IN',13,10,'$'
- ; COND, 6 LPI, 11"
- COND6LPI DB 27,'!',4 ;SET COND TYPE
- DB 27,'2' ;SET 6 LPI
- DB 27,'C',0,11 ;SET 11 INCH FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=COND, LPI=6, FORM LENGTH = 11 IN',13,10,'$'
- ; COND, 8 LPI, 11"
- COND8LPI DB 27,'!',4 ;SET COND TYPE
- DB 27,'0' ;SET 8 LPI
- DB 27,'C',0,11 ;SET 11 INCH FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=COND, LPI=8, FORM LENGTH = 11 IN',13,10,'$'
- ; 8 1/2 X 11 SIDEWAYS PAPER
- SPEC6LPI DB 27,'!',1 ;SET ELITE TYPE
- DB 27,'2' ;SET 6 LPI
- DB 27,'C',68 ;SET 68 LINES/PAGE
- DB 27,'N',9 ;SKIP 9 LINES AT END OF FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=ELITE, LPI=6, FORM LENGTH = 8.5 IN',13,10,'$'
- SPEC8LPI DB 27,'!',1 ;SET ELITE TYPE
- DB 27,'0' ;SET 8 LPI
- DB 27,'C',68 ;SET 68 LINES/PAGE
- DB 27,'N',9 ;SKIP 11 LINES AT END OF FORM
- DB 255 ;END OF DATA
- DB 'PRINTER SET: TYPE=ELITE, LPI=8, FORM LENGTH = 8.5 IN',13,10,'$'
- NOCHANGE DB 255 ;END OF DATA
- DB 'PRINTER WAS NOT MODIFIED',13,10,'$'
- ;
- ;
- ;
- TYPETABL DW NOCHANGE
- DW PICA6LPI
- DW PICA8LPI
- DW ELIT6LPI
- DW ELIT8LPI
- DW COND6LPI
- DW COND8LPI
- DW SPEC8LPI
- DW SPEC8LPI
- START:
- MOV BX,80H ;POINT AT INPUT PARM AREA
- MOV AL,[BX] ;GET LENGTH IF ANY
- CBW
- MOV CX,AX ;LINE COUNT TO CX
- OR AL,AL ;IS THERE A PARM?
- JZ PRSL080 ;NO-PRESENT THE MENU
- INC BX ;POINT TO INP MSG
- PRSL020:
- MOV AL,[BX] ;GET INPUT PARAMETER
- CMP AL,'0' ;NUMERIC?
- JL PRSL040 ;NO-PRESENT MENU
- CMP AL,'8' ;NUMERIC?
- JG PRSL040 ;NO-PRESENT MENU
- JMP PRSL160 ;ELSE - USE THE PARM VALUE
- PRSL040: INC BX ;POINT TO NEXT CHARACTER
- LOOP PRSL020 ;AND KEEP LOOKING FOR A NUMBER
- ;
- ; MENU DISPLAY
- ;
- PRSL080: ;PRESENT A MENU
- @MSG 'P R I N T E R M O D E S E L E C T'
- @MSG ' '
- @MSG '1) STANDARD PICA PRINT, 6 LPI, 11 INCH FORM'
- @MSG ' '
- @MSG '2) STANDARD PICA PRINT, 8 LPI, 11 INCH FORM'
- @MSG ' '
- @MSG '3) ELITE TYPE, 6 LPI, 11 INCH FORM'
- @MSG ' '
- @MSG '4) ELITE TYPE, 8 LPI, 11 INCH FORM'
- @MSG ' '
- @MSG '5) CONDENSED PRINT, 6 LPI, 11 INCH FORM'
- @MSG ' '
- @MSG '6) CONDENSED PRINT, 8 LPI, 11 INCH FORM'
- @MSG ' '
- @MSG '7) ELITE TYPE, 6 LPI, 8.5 INCH FORM'
- @MSG ' '
- @MSG '8) ELITE TYPE, 8 LPI, 8.5 INCH FORM'
- @MSG ' '
- @MSG '0) CANCEL PROGRAM - LEAVE PRINTER UNCHANGED'
- @MSG ' '
- @MSG ' '
- @MSG 'PRESS A DIGIT KEY TO SELECT PRINT STYLE'
- ;
- ;
- ;
- PRSL100: MOV AL,7
- @DOS 0CH ;FLUSH INPUT BUFFER & WAIT FOR CHAR
- CMP AL,'0' ;NUMERIC?
- JL PRSL100 ;NO-WAIT FOR LEGAL CHAR
- CMP AL,'8' ;WITHIN RANGE?
- JG PRSL100 ;NO-TRY AGAIN
- ;
- ; PARM READY - SET UP THE PRINTER
- ;
- PRSL160: SUB AL,30H ;GET AN INDEX VALUE
- CBW ;GET 2 BYTE INXEX
- MOV BX,AX
- SHL BX,1 ;INDEX TO ESCAPE CODE TABLE
- MOV BX,TYPETABL [BX] ;GET POINTER TO CORRECT SEQUENCE
- ;
- ; SEND ESCAPE SEQUENCE TO PRINTER
- ;
- PRSL220: MOV DL,[BX] ;GET CHARACTER
- CMP DL,255 ;END OF SEQUENCE?
- JE PRSL300 ;YES-SEND MESSAGE BACK
- @DOS 5 ;ELSE SEND CHAR TO PRINTER
- INC BX
- JMP PRSL220
- ;
- ; SEND CONFIRMATION TO CONSOLE
- ;
- PRSL300: MOV DX,BX ;POINT TO X'FF'
- INC DX ;POINT TO MESSAGE
- @DOS 9 ;PRINT STRING
- PRSL340: @DOS 0 ;QUIT-BACK TO DOS
- ENDCOM SETPR